package org.graduation.recruitment.entity.exception;

/**
 * 服务异常类，继承自运行时异常类。
 * 这个类提供了多种构造函数，允许在抛出服务异常时附带更多的上下文信息。
 */
public class ServiceException extends RuntimeException {

    /**
     * 无参构造函数，创建一个不带消息的服务异常实例。
     */
    public ServiceException() {
        super();
    }

    /**
     * 带有详细信息的构造函数。
     *
     * @param message 异常的详细信息。
     */
    public ServiceException(String message) {
        super(message);
    }

    /**
     * 带有详细信息和导致异常的原因的构造函数。
     *
     * @param message 异常的详细信息。
     * @param cause   导致异常的原因。
     */
    public ServiceException(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * 基于导致异常的原因创建异常实例的构造函数。
     *
     * @param cause 导致异常的原因。
     */
    public ServiceException(Throwable cause) {
        super(cause);
    }

    /**
     * 保护类型的构造函数，允许控制异常的抑制和堆栈轨迹的可写性。
     *
     * @param message            异常的详细信息。
     * @param cause              导致异常的原因。
     * @param enableSuppression  是否允许抑制异常。
     * @param writableStackTrace 是否允许错误栈信息可写。
     */
    protected ServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}
